Make GtkCheckButton allocate all remaining space to it's child instead
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Wed, 29 Dec 2010 07:19:48 +0000 (16:19 +0900)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Wed, 29 Dec 2010 07:19:48 +0000 (16:19 +0900)
of limiting it to it's minimum size.

This fixes height-for-width labels inside a GtkCheckButton, for some
reason GtkCheckButton was limiting the child allocation to the child's
minimum request, probably for the sake of virtual left-alignment of
the child label to be beside the checkmark. This should be done by
other means if nescesarry.

gtk/gtkcheckbutton.c

index 91b92f0f7070f86dbf75c740e1ecad059620f1c0..11e7c181b674a1671f70a76a3a1b0db10af98327 100644 (file)
@@ -334,16 +334,11 @@ gtk_check_button_size_allocate (GtkWidget     *widget,
          GtkRequisition child_requisition;
           guint border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
 
-          gtk_widget_get_preferred_size (child, &child_requisition, NULL);
-
-         child_allocation.width = MIN (child_requisition.width,
-                                       allocation->width -
-                                       ((border_width + focus_width + focus_pad) * 2
-                                        + indicator_size + indicator_spacing * 3));
+         child_allocation.width = allocation->width -
+           ((border_width + focus_width + focus_pad) * 2 + indicator_size + indicator_spacing * 3);
          child_allocation.width = MAX (child_allocation.width, 1);
 
-         child_allocation.height = MIN (child_requisition.height,
-                                        allocation->height - (border_width + focus_width + focus_pad) * 2);
+         child_allocation.height = allocation->height - (border_width + focus_width + focus_pad) * 2;
          child_allocation.height = MAX (child_allocation.height, 1);
          
          child_allocation.x = (border_width + indicator_size + indicator_spacing * 3 +